import { createApp } from 'vue'
import App from './App.vue'
import router from './router'
import store from './store'
import * as echarts from 'echarts'
import ElementPlus from 'element-plus'
import * as ElementPlusIconsVue from '@element-plus/icons-vue'
import AMapLoader from '@amap/amap-jsapi-loader'
import 'element-plus/dist/index.css'
import './assets/css/reset.css'
// element-plus国际化使用
import zhCn from 'element-plus/dist/locale/zh-cn.mjs'
// 引入天气插件
import weather from 'vue-mini-weather'

const app = createApp(App)
for (const [key, component] of Object.entries(ElementPlusIconsVue)) {
  app.component(key, component)
}

// 如果需要密钥
window._AMapSecurityConfig = {
  securityJsCode: 'eae0ca3aaf26cfc2b83de0d3cc1edd43' // 开发环境使用
}
AMapLoader.load({
  key: 'ba73d135a952a42a60d4625682136d26', // 申请好的Web端开发者Key，首次调用 load 时必填
  version: '2.0', // 指定要加载的 JSAPI 的版本，缺省时默认为 1.4.15
  plugins: [], // 需要使用的的插件列表，如比例尺'AMap.Scale'等
  AMapUI: {
    // 是否加载 AMapUI，缺省不加载
    version: '1.1', // AMapUI 缺省 1.1
    plugins: [] // 需要加载的 AMapUI ui插件
  },
  Loca: {
    // 是否加载 Loca， 缺省不加载
    version: '2.0.0' // Loca 版本，缺省 1.3.2
  }
}).then((AMap) => {
  // 挂载AMap
  app.config.globalProperties.$AMap = AMap
})
// 将echarts注册为全局
app.config.globalProperties.$echarts = echarts
// 当页面刷新重新添加路由
if (store.state.provideRouter.authRouter.length !== 0) {
  store.commit('provideRouter/ADD_AUTH_ROUTES')
}
app
  // 注册天气插件
  .use(weather)
  // 注册vuex
  .use(store)
  .use(router)
  // 注册element-plus中的国际化插件，配置提示语言
  .use(ElementPlus, {
    // 配置国际化所使用的语言，这里使用的是中文
    locale: zhCn
  })
  // 使用的是ElementPlus组件库，c端项目建议使用vant
  // 使用插件后自动将组件库所有组件注册为全局组件
  .mount('#app')
